package com.ironman.mes.web;

import cn.dev33.satoken.stp.SaTokenInfo;
import cn.dev33.satoken.stp.StpUtil;
import com.ironman.mes.convention.exception.MesException;
import com.ironman.mes.convention.exception.ServiceException;
import lombok.extern.slf4j.Slf4j;
import org.noear.solon.annotation.Controller;
import org.noear.solon.annotation.Mapping;
import org.noear.solon.annotation.Param;

/**
 * 登录测试
 */
@Slf4j
@Controller
@Mapping("/auth/")
public class LoginController {

    // 测试登录
    @Mapping("login")
    public String login(@Param("username") String username, @Param("password") String password) {
        // 此处仅作模拟示例，真实项目需要从数据库中查询数据进行比对 
        if ("zhang".equals(username) && "123456".equals(password)) {
            StpUtil.login(10001);
            return StpUtil.getTokenInfo().getTokenValue();
        }
        throw new ServiceException("登录失败");
    }

    // 查询登录状态
    @Mapping("isLogin")
    public String isLogin() {
        return StpUtil.isLogin() ? "已登录" : "未登录";
    }

    // 查询 Token 信息
    @Mapping("tokenInfo")
    public SaTokenInfo tokenInfo() {
        return StpUtil.getTokenInfo();
    }

    // 测试注销
    @Mapping("logout")
    public void logout() {
        StpUtil.logout();
    }

}
